Bug 69872 - GTK_WIDGET_SET_FLAGS should be deprecated
authorMichael Natterer <mitch@gimp.org>
Fri, 28 Aug 2009 14:27:26 +0000 (16:27 +0200)
committerMichael Natterer <mitch@gimp.org>
Fri, 28 Aug 2009 14:27:26 +0000 (16:27 +0200)
Add gtk_widget_is_toplevel() for GTK_WIDGET_TOPLEVEL()
and gtk_widget_is_drawable() for GTK_WIDGET_DRAWABLE()

gtk/gtk.symbols
gtk/gtkwidget.c
gtk/gtkwidget.h

index 89e32400e41f54bbf1522a83a0a0bcfc05090870..bd13c9216cbf71d80709e3eaa8ce18fd48709407 100644 (file)
@@ -5018,6 +5018,8 @@ gtk_widget_intersect
 gtk_widget_is_ancestor
 gtk_widget_is_focus
 gtk_widget_is_sensitive
+gtk_widget_is_toplevel
+gtk_widget_is_drawable
 gtk_widget_keynav_failed
 gtk_widget_list_accel_closures
 gtk_widget_list_mnemonic_labels
index 00bb74877f1434a03d42c6041987fe1b8208e043..0f29020593d8a8d0358844adc7206b89dd812db5 100644 (file)
@@ -5701,6 +5701,46 @@ gtk_widget_get_has_window (GtkWidget *widget)
   return !GTK_WIDGET_NO_WINDOW (widget);
 }
 
+/**
+ * gtk_widget_is_toplevel:
+ * @widget: a #GtkWidget
+ *
+ * Determines whether @widget is a toplevel widget. Currently only
+ * #GtkWindow and #GtkInvisible are toplevel widgets. Toplevel
+ * widgets have no parent widget.
+ *
+ * Return value: %TRUE if @widget is a toplevel, %FALSE otherwise
+ *
+ * Since: 2.18
+ **/
+gboolean
+gtk_widget_is_toplevel (GtkWidget *widget)
+{
+  g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE);
+
+  return (GTK_WIDGET_FLAGS (widget) & GTK_TOPLEVEL) != 0;
+}
+
+/**
+ * gtk_widget_is_drawable:
+ * @widget: a #GtkWidget
+ *
+ * Determines whether @widget can be drawn to. A widget can be drawn
+ * to if it is mapped and visible.
+ *
+ * Return value: %TRUE if @widget is drawable, %FALSE otherwise
+ *
+ * Since: 2.18
+ **/
+gboolean
+gtk_widget_is_drawable (GtkWidget *widget)
+{
+  g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE);
+
+  return ((GTK_WIDGET_FLAGS (wid) & GTK_VISIBLE) != 0 &&
+          (GTK_WIDGET_FLAGS (wid) & GTK_MAPPED) != 0);
+}
+
 /**
  * gtk_widget_set_app_paintable:
  * @widget: a #GtkWidget
index 0838083bed0901afa6b7137608796e1aa601a6f6..eb972c9d42d1a0cf687905467180bb23fc7dbbe1 100644 (file)
@@ -584,6 +584,9 @@ void                  gtk_widget_set_has_window         (GtkWidget    *widget,
                                                          gboolean      has_window);
 gboolean              gtk_widget_get_has_window         (GtkWidget    *widget);
 
+gboolean              gtk_widget_is_toplevel            (GtkWidget    *widget);
+gboolean              gtk_widget_is_drawable            (GtkWidget    *widget);
+
 void                  gtk_widget_set_app_paintable      (GtkWidget    *widget,
                                                         gboolean      app_paintable);
 gboolean              gtk_widget_get_app_paintable      (GtkWidget    *widget);
@@ -594,12 +597,15 @@ gboolean              gtk_widget_get_double_buffered    (GtkWidget    *widget);
 
 void                  gtk_widget_set_redraw_on_allocate (GtkWidget    *widget,
                                                         gboolean      redraw_on_allocate);
+
 void                  gtk_widget_set_parent             (GtkWidget    *widget,
                                                         GtkWidget    *parent);
 GtkWidget           * gtk_widget_get_parent             (GtkWidget    *widget);
+
 void                  gtk_widget_set_parent_window      (GtkWidget    *widget,
                                                         GdkWindow    *parent_window);
 GdkWindow           * gtk_widget_get_parent_window      (GtkWidget    *widget);
+
 void                  gtk_widget_set_child_visible      (GtkWidget    *widget,
                                                         gboolean      is_visible);
 gboolean              gtk_widget_get_child_visible      (GtkWidget    *widget);